package Day_0214.Tomcat;

/**
 * @author zxc
 * @date 2023/02/14 21:26
 **/
public class Tomcat_Request_Process {
    public static void main(String[] args) {
        /**
         * Tomcat中请求的完整过程
         * ===》
         * Tomcat中一个请求的完整过程
         * 1) 请求被发送到本机端口 8080，被在那里侦听的 Coyote HTTP/1.1 Connector获得;
         * 2) Connector 把该请求交给它所在的 Service 的 Engine 来处理，并等待来自Engine 的回应;
         * 3) Engine 获得请求 localhost/yy/index.jsp，匹配它所拥有的所有虚拟主机 Host;
         * 4) Engine 匹配到名为 localhost 的 Host;
         * （即使匹配不到也把请求交给该 Host 处理，因为该 Host 被定义为该 Engine 的默认主机）
         * 5) localhost Host 获得请求/yy/index.jsp，匹配它所拥有的所有 Context;
         * 6) Host 匹配到路径为/yy 的 Context;
         * （如果匹配不到就把该请求交给路径名为”“的 Context 去处理）
         * 7) path=”/yy”的 Context 获得请求/index.jsp，在它的 mapping table 中寻找对应的 servlet;
         * 8) Context 匹配到 URL PATTERN 为*.jsp 的 servlet，对应于 JspServlet 类;
         * 9) 构造 HttpServletRequest 对象和 HttpServletResponse 对象，作为参数调用JspServlet 的 doGet 或 doPost 方法;
         * 10)Context 把执行完了之后的 HttpServletResponse 对象返回给 Host;
         * 11)Host 把 HttpServletResponse 对象返回给 Engine;
         * 12)Engine 把 HttpServletResponse 对象返回给 Connector;
         * 13)Connector 把 HttpServletResponse 对象返回给客户 browser;
         *
         */
    }
}
